package com.huijie.core.constant;

import io.swagger.annotations.ApiModelProperty;

/**
 * @ClassName ResponseCode
 * @Description 系统返回码和对应返回描述枚举
 * @Author Alex
 * @Date 2018/9/20 19:45
 * @Version 1.0
 */
public enum ResponseCode {
    /*系统返回成功、*/
    GLOBAL_SUCCESS(0, "success 成功"),
    /*username_required 用户名不能为空*/
    USERNAME_REQUIRED(501, "username_required 用户名不能为空"),
    /*password_required 密码不能为空*/
    GLOBAL_LOGIN_PASS_NULL(502, "password_required 密码不能为空"),
    /*username_or_password_mismatch 用户名或密码不匹配*/
    GLOBAL_LOGIN_UNKNOWN_FAIL(503, "username_or_password_mismatch 用户名或密码不匹配"),
    /*system login error 系统登录异常*/
    GLOBAL_LOGIN_ERROR(504, "system login error 系统登录异常"),
    /*invalid_usertype 无效的用户类型*/
    GLOBAL_LOGIN_INVALID_USERTYPE(507, "invalid_usertype 无效的用户类型"),

    /*通用API-token V1版本 返回code*/
    UNKONWN_REASON(98, "由于人品原因您被拒绝访问了"),
    /*通用API-token V1版本 返回code*/
    TOKEN_UNAUTHORIZED(99, "该 token 未通过认证"),
    /*invalid_request_scheme 错误的请求协议*/
    INVALID_REQUEST_SCHEME(100, "invalid_request_scheme 错误的请求协议"),
    /*invalid_request_method 错误的请求方法*/
    INVALID_REQUEST_METHOD(101, "invalid_request_method 错误的请求方法"),
    /*access_token_is_missing 未找到 access_token*/
    JWT_TOKEN_IS_MISSING(102, "jwt_token_is_missing 未找到 jwt_token"),
    /*invalid_jwt_token jwt_token 不存在或已被用户删除，或者用户修改了密码*/
    INVALID_JWT_TOKEN(103, "invalid_jwt_token jwt_token 不存在或已被用户删除，或者用户修改了密码"),
    /*invalid_apikey apikey 不存在或已删除*/
    INVALID_APIKEY(104, "invalid_apikey apikey 不存在或已删除"),
    /*apikey_is_blocked apikey 已被禁用*/
    APIKEY_IS_BLOCKED(105, "apikey_is_blocked apikey 已被禁用"),
    /*jwt_token_has_expired jwt_token 不存在或已过期*/
    JWT_TOKEN_HAS_EXPIRED(106, "jwt_token_has_expired jwt_token 不存在或已过期"),
    /*invalid_request_uri 请求地址未注册*/
    INVALID_REQUEST_URI(107, "invalid_request_uri 请求地址未注册"),
    /*invalid_credencial1 用户未授权访问此数据*/
    INVALID_CREDENCIAL1(108, "invalid_credencial1 用户未授权访问此接口"),
    /*invalid_credencial2 apikey 未申请此权限*/
    INVALID_CREDENCIAL2(109, "invalid_credencial2 apikey 未申请此权限"),
    /*not_trial_user 未注册的测试用户*/
    NOT_TRIAL_USER(110, "not_trial_user 未注册的测试用户"),
    /*rate_limit_exceeded1 用户访问速度限制*/
    RATE_LIMIT_EXCEEDED1(111, "rate_limit_exceeded1 用户访问速度限制"),
    /*rate_limit_exceeded2 IP 访问速度限制*/
    RATE_LIMIT_EXCEEDED2(112, "rate_limit_exceeded2 IP 访问速度限制"),
    /*required_parameter_is_missing 缺少参数*/
    REQUIRED_PARAMETER_IS_MISSING(113, "required_parameter_is_missing 缺少参数"),
    /*unsupported_grant_type 错误的 grant_type*/
    UNSUPPORTED_GRANT_TYPE(114, "unsupported_grant_type 错误的 grant_type"),
    /*unsupported_response_type 错误的 response_type*/
    UNSUPPORTED_RESPONSE_TYPE(115, "unsupported_response_type 错误的 response_type"),
    /*client_secret_mismatch client_secret不匹配*/
    CLIENT_SECRET_MISMATCH(116, "client_secret_mismatch client_secret不匹配"),
    /*redirect_uri_mismatch redirect_uri不匹配*/
    REDIRECT_URI_MISMATCH(117, "redirect_uri_mismatch redirect_uri不匹配"),
    /*invalid_authorization_code authorization_code 不存在或已过期*/
    INVALID_AUTHORIZATION_CODE(118, "invalid_authorization_code authorization_code 不存在或已过期"),
    /*invalid_refresh_token refresh_token 不存在或已过期*/
    INVALID_REFRESH_TOKEN(119, "invalid_refresh_token refresh_token 不存在或已过期"),
    /*username_password_mismatch 用户名密码不匹配*/
    USERNAME_PASSWORD_MISMATCH(120, "username_password_mismatch 用户名密码不匹配"),
    /*invalid_user 用户不存在或已删除*/
    INVALID_USER(121, "invalid_user 用户不存在或已删除"),
    /*user_has_blocked 用户已被屏蔽*/
    USER_HAS_BLOCKED(122, "user_has_blocked 用户已被屏蔽"),
    /*jwt_token_has_expired_since_password_changed 因用户修改密码而导致 jwt_token 过期*/
    JWT_TOKEN_HAS_EXPIRED_SINCE_PASSWORD_CHANGED(123, "jwt_token_has_expired_since_password_changed 因"
            + "用户修改密码而导致 jwt_token 过期"),
    /*jwt_token_has_not_expired jwt_token 未过期*/
    JWT_TOKEN_HAS_NOT_EXPIRED(124, "jwt_token_has_not_expired jwt_token 未过期"),
    /*invalid_request_scope 访问的 scope 不合法，开发者不用太关注，一般不会出现该错误*/
    INVALID_REQUEST_SCOPE(125, "invalid_request_scope 访问的 scope 不合法，开发者不用太关注，一般不会出现该错误"),
    /*invalid_request_source 访问来源不合法*/
    INVALID_REQUEST_SOURCE(126, "invalid_request_source 访问来源不合法"),
    /*thirdparty_login_auth_faied 第三方授权错误*/
    THIRDPARTY_LOGIN_AUTH_FAIED(127, "thirdparty_login_auth_faied 第三方授权错误"),
    /*user_locked 用户被锁定*/
    USER_LOCKED(128, "user_locked 用户被锁定"),
    /*unknown 未知错误*/
    UNKNOWN(900, "unknown 未知错误"),
    ;

    ResponseCode(int code, String message) {
        this.code = code;
        this.message = message;
    }



    @ApiModelProperty(value = "返回码")
    /**
     * 返回码
     */
    private int code;


    @ApiModelProperty(value = "返回码描述")
    /**
     *返回信息
     */
    private String message;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}
